package com.ncu.spring.anno;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *  另一种方式实现解决构造方法的循环依赖问题
 *  通过Scope 为代理对象创建 BeanDefinition 和 往单例池中放额外的bean(scopeTarget)
 *  但是这里没有实现 proxyMode 属性 无法实现上诉操作
 *
 *  这里是使用Scope来指定bean的范围 比如：单例 多例 session request global
 *  默认是单例模式
 */
@Target(ElementType.TYPE) //只能在类的上方被使用
@Retention(RetentionPolicy.RUNTIME) //该注解运行时一直存在
public @interface Scope {
    String value() default ""; //指定bean的范围
}
